#include "porte_sdl/evento.h"

#include "evento/gerenciador.h"
#include "SDL.h"
#include "tarefa/gerenciador.h"
#include "teclado/evento_teclado.h"

namespace porte_sdl {
evento::evento() {
  GT.cadastra(this);
}
bool evento::executa(int passou) {
  SDL_Event event;
  if (SDL_PollEvent(&event)) {
    switch (event.type) {
      case SDL_KEYDOWN:
        LANCA(new teclado::evento_teclado(::evento::TECLA_APERTADA,
                                                  event.key.keysym.sym));
        break;
      case SDL_KEYUP:
        LANCA(new teclado::evento_teclado(::evento::TECLA_SOLTA,
                                          event.key.keysym.sym));
        break;
      case SDL_QUIT:
        LANCA(new ::evento::evento(::evento::FECHAR_TELA));
        break;
    }
  }
  return true;
}
}
